package org.example.cake.service;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.example.cake.entity.Discount;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface DiscountService{


    int deleteByPrimaryKey(Integer discountid);

    int insert(Discount record);

    int insertSelective(Discount record);

    Discount selectByPrimaryKey(Integer discountid);

    int updateByPrimaryKeySelective(Discount record);

    int updateByPrimaryKey(Discount record);

    /**
     * 查询所有优惠券
     * @return 优惠券集合
     * 徐
     */
    public List<Discount> selectAllDiscount(String discountname,Integer status);

    /**
     * 通过userid查询所拥有的优惠券
     * @param userid 用户id
     * @return 优惠券集合
     */
    public List<Discount> selectDiscountByUserid(@Param("userid") Integer userid);


    /**
     * //新增后台优惠券信息
     * @author 徐
     * @param discount 优惠券对象
     * @date 2025-08-01
     * @return 受影响的行数
     */
    public String insertDiscountEnd(Discount discount);

    /**
     * //后台优惠券删除（根据id删除）
     * @author 徐
     * @param discountid 优惠券id
     * @date 2025-08-01
     * @return 优惠券id
     */
    public String deleteDiscountEnd(Integer discountid);

    /**
     * //修改后台优惠券信息
     * @author 徐
     * @param discount 优惠券对象
     * @date 2025-08-01
     * @return 受影响的行数
     */
    public String updateDiscountEnd(Discount discount);

    /**
     * 第一次登录得到的优惠券
     * @return 优惠券集合
     */
    public List<Discount> selectTwoDiscount();

    Discount getyouhuiquan(Integer discountId);
    /*
     * 根据openid新增优惠券
     * @param openid 用户的openid
     * @return 优惠券对象
     */
    public Discount createDiscountForNewUser(@Param("openid") String openid);

    /**
     * 根据优惠券id查询优惠券
     * @param discountid 优惠券id
     * @return 优惠券实体
     */
    public Discount selectById(@Param("discountid") Integer discountid);
}
